library(forecastLM)
md1 <- trainLM(input = ny_elec,
               y = "y",
               seasonal = c("month"),
               trend = list(linear = TRUE))


plot_res(md1)
md2 <- trainLM(input = ny_elec,
               y = "y",
               seasonal = c("month", "wday"),
               trend = list(linear = TRUE))


plot_res(md2)
md3 <- trainLM(input = ny_elec,
               y = "y",
               seasonal = c("month", "wday", "hour"),
               trend = list(linear = TRUE))


plot_res(md3)
md4 <- trainLM(input = ny_elec,
               y = "y",
               seasonal = c("month", "wday", "hour"),
               trend = list(linear = TRUE),
               lags = c(1:24))


plot_res(md4)
md5 <- trainLM(input = ny_elec,
               y = "y",
               seasonal = c("month", "wday", "hour"),
               trend = list(linear = TRUE),
               lags = c(1:24, 48, 72))


plot_res(md5)
md6 <- trainLM(input = ny_elec,
               y = "y",
               seasonal = c("month", "wday", "hour"),
               trend = list(linear = TRUE),
               lags = c(1:24, 48, 72),
               step = TRUE)
#> Start:  AIC=462810.5
#> y ~ hour + wday + month + linear_trend + lag_1 + lag_2 + lag_3 + 
#>     lag_4 + lag_5 + lag_6 + lag_7 + lag_8 + lag_9 + lag_10 + 
#>     lag_11 + lag_12 + lag_13 + lag_14 + lag_15 + lag_16 + lag_17 + 
#>     lag_18 + lag_19 + lag_20 + lag_21 + lag_22 + lag_23 + lag_24 + 
#>     lag_48 + lag_72
#> 
#>                Df  Sum of Sq        RSS    AIC
#> - lag_3         1      72689 4.9553e+09 462809
#> - lag_22        1     206439 4.9554e+09 462810
#> <none>                       4.9552e+09 462810
#> - linear_trend  1     328276 4.9556e+09 462811
#> - lag_14        1     513410 4.9557e+09 462813
#> - lag_9         1     530785 4.9558e+09 462813
#> - lag_16        1     563530 4.9558e+09 462813
#> - lag_20        1     609159 4.9558e+09 462813
#> - lag_5         1     695539 4.9559e+09 462814
#> - lag_7         1     711626 4.9559e+09 462814
#> - lag_18        1     857154 4.9561e+09 462815
#> - lag_11        1     885013 4.9561e+09 462815
#> - lag_21        1    1604734 4.9568e+09 462821
#> - lag_8         1    1640318 4.9569e+09 462821
#> - lag_12        1    2217113 4.9574e+09 462826
#> - lag_17        1    2399430 4.9576e+09 462828
#> - lag_19        1    2835225 4.9581e+09 462831
#> - lag_4         1    3430840 4.9587e+09 462836
#> - lag_13        1    3672130 4.9589e+09 462838
#> - lag_6         1    3847317 4.9591e+09 462839
#> - month        11    7541560 4.9628e+09 462848
#> - lag_72        1    5524282 4.9608e+09 462852
#> - lag_10        1    7411022 4.9626e+09 462867
#> - lag_15        1    9002401 4.9642e+09 462880
#> - lag_48        1   11578259 4.9668e+09 462900
#> - lag_23        1  103413205 5.0586e+09 463622
#> - wday          6  112074155 5.0673e+09 463680
#> - lag_24        1  129025752 5.0843e+09 463821
#> - lag_2         1  162337599 5.1176e+09 464079
#> - hour         23  526841816 5.4821e+09 466746
#> - lag_1         1 7611403535 1.2567e+10 499477
#> 
#> Step:  AIC=462809
#> y ~ hour + wday + month + linear_trend + lag_1 + lag_2 + lag_4 + 
#>     lag_5 + lag_6 + lag_7 + lag_8 + lag_9 + lag_10 + lag_11 + 
#>     lag_12 + lag_13 + lag_14 + lag_15 + lag_16 + lag_17 + lag_18 + 
#>     lag_19 + lag_20 + lag_21 + lag_22 + lag_23 + lag_24 + lag_48 + 
#>     lag_72
#> 
#>                Df  Sum of Sq        RSS    AIC
#> - lag_22        1     208576 4.9555e+09 462809
#> <none>                       4.9553e+09 462809
#> - linear_trend  1     328130 4.9556e+09 462810
#> - lag_14        1     510181 4.9558e+09 462811
#> - lag_9         1     535133 4.9558e+09 462811
#> - lag_16        1     566584 4.9559e+09 462812
#> - lag_20        1     606990 4.9559e+09 462812
#> - lag_5         1     655808 4.9560e+09 462812
#> - lag_7         1     722549 4.9560e+09 462813
#> - lag_18        1     866758 4.9562e+09 462814
#> - lag_11        1     876114 4.9562e+09 462814
#> - lag_21        1    1600011 4.9569e+09 462820
#> - lag_8         1    1648451 4.9570e+09 462820
#> - lag_12        1    2201825 4.9575e+09 462825
#> - lag_17        1    2373562 4.9577e+09 462826
#> - lag_19        1    2855396 4.9582e+09 462830
#> - lag_13        1    3641473 4.9589e+09 462836
#> - lag_6         1    3826561 4.9591e+09 462837
#> - lag_4         1    4544373 4.9598e+09 462843
#> - month        11    7538174 4.9628e+09 462847
#> - lag_72        1    5523800 4.9608e+09 462851
#> - lag_10        1    7403560 4.9627e+09 462866
#> - lag_15        1    8960265 4.9643e+09 462878
#> - lag_48        1   11577595 4.9669e+09 462899
#> - lag_23        1  103348281 5.0587e+09 463620
#> - wday          6  112072020 5.0674e+09 463678
#> - lag_24        1  128958659 5.0843e+09 463819
#> - lag_2         1  271461785 5.2268e+09 464909
#> - hour         23  527266921 5.4826e+09 466747
#> - lag_1         1 7872209325 1.2828e+10 500285
#> 
#> Step:  AIC=462808.7
#> y ~ hour + wday + month + linear_trend + lag_1 + lag_2 + lag_4 + 
#>     lag_5 + lag_6 + lag_7 + lag_8 + lag_9 + lag_10 + lag_11 + 
#>     lag_12 + lag_13 + lag_14 + lag_15 + lag_16 + lag_17 + lag_18 + 
#>     lag_19 + lag_20 + lag_21 + lag_23 + lag_24 + lag_48 + lag_72
#> 
#>                Df  Sum of Sq        RSS    AIC
#> <none>                       4.9555e+09 462809
#> - linear_trend  1     327838 4.9558e+09 462809
#> - lag_14        1     522168 4.9560e+09 462811
#> - lag_9         1     530229 4.9560e+09 462811
#> - lag_16        1     559366 4.9561e+09 462811
#> - lag_5         1     658987 4.9562e+09 462812
#> - lag_20        1     693420 4.9562e+09 462812
#> - lag_7         1     708549 4.9562e+09 462812
#> - lag_18        1     847840 4.9564e+09 462813
#> - lag_11        1     883248 4.9564e+09 462814
#> - lag_8         1    1691213 4.9572e+09 462820
#> - lag_12        1    2250234 4.9578e+09 462825
#> - lag_17        1    2357506 4.9579e+09 462825
#> - lag_19        1    2889819 4.9584e+09 462830
#> - lag_13        1    3677992 4.9592e+09 462836
#> - lag_6         1    3790794 4.9593e+09 462837
#> - lag_21        1    3804343 4.9593e+09 462837
#> - lag_4         1    4548730 4.9601e+09 462843
#> - month        11    7531151 4.9630e+09 462847
#> - lag_72        1    5526823 4.9610e+09 462851
#> - lag_10        1    7489599 4.9630e+09 462866
#> - lag_15        1    8973525 4.9645e+09 462878
#> - lag_48        1   11581535 4.9671e+09 462899
#> - wday          6  112093175 5.0676e+09 463678
#> - lag_24        1  131138210 5.0866e+09 463836
#> - lag_23        1  159215486 5.1147e+09 464053
#> - lag_2         1  272147005 5.2277e+09 464913
#> - hour         23  527116009 5.4826e+09 466746
#> - lag_1         1 7876769332 1.2832e+10 500297


plot_res(md6)

summary(md6$model)
#> 
#> Call:
#> stats::lm(formula = y ~ hour + wday + month + linear_trend + 
#>     lag_1 + lag_2 + lag_4 + lag_5 + lag_6 + lag_7 + lag_8 + lag_9 + 
#>     lag_10 + lag_11 + lag_12 + lag_13 + lag_14 + lag_15 + lag_16 + 
#>     lag_17 + lag_18 + lag_19 + lag_20 + lag_21 + lag_23 + lag_24 + 
#>     lag_48 + lag_72, data = df1)
#> 
#> Residuals:
#>      Min       1Q   Median       3Q      Max 
#> -15920.6   -198.1     -4.9    191.2  18832.2 
#> 
#> Coefficients:
#>                Estimate Std. Error t value Pr(>|t|)    
#> (Intercept)   2.999e+02  2.653e+01  11.305  < 2e-16 ***
#> hour2        -1.897e+01  1.312e+01  -1.445 0.148392    
#> hour3        -1.990e+02  1.452e+01 -13.708  < 2e-16 ***
#> hour4        -4.948e+02  1.565e+01 -31.612  < 2e-16 ***
#> hour5        -4.875e+02  1.677e+01 -29.063  < 2e-16 ***
#> hour6        -4.503e+02  1.762e+01 -25.558  < 2e-16 ***
#> hour7        -2.338e+02  1.835e+01 -12.737  < 2e-16 ***
#> hour8        -1.709e+02  1.865e+01  -9.162  < 2e-16 ***
#> hour9        -1.845e+02  1.849e+01  -9.977  < 2e-16 ***
#> hour10       -1.534e+02  1.799e+01  -8.528  < 2e-16 ***
#> hour11       -8.103e+01  1.722e+01  -4.706 2.53e-06 ***
#> hour12        2.058e+02  1.655e+01  12.430  < 2e-16 ***
#> hour13        3.616e+02  1.621e+01  22.302  < 2e-16 ***
#> hour14        6.321e+01  1.642e+01   3.851 0.000118 ***
#> hour15       -1.200e+02  1.697e+01  -7.075 1.52e-12 ***
#> hour16       -9.666e+01  1.771e+01  -5.457 4.88e-08 ***
#> hour17       -1.664e+02  1.828e+01  -9.104  < 2e-16 ***
#> hour18       -1.975e+02  1.841e+01 -10.727  < 2e-16 ***
#> hour19       -1.465e+02  1.814e+01  -8.075 6.95e-16 ***
#> hour20       -1.190e+02  1.758e+01  -6.768 1.32e-11 ***
#> hour21       -8.941e+01  1.684e+01  -5.308 1.11e-07 ***
#> hour22       -6.137e+00  1.586e+01  -0.387 0.698808    
#> hour23        1.317e+02  1.455e+01   9.050  < 2e-16 ***
#> hour24        1.656e+02  1.313e+01  12.619  < 2e-16 ***
#> wdayMon       1.286e+02  7.191e+00  17.889  < 2e-16 ***
#> wdayTue       2.465e+01  7.625e+00   3.233 0.001227 ** 
#> wdayWed       2.897e+01  7.469e+00   3.878 0.000105 ***
#> wdayThu       1.627e+01  7.091e+00   2.295 0.021737 *  
#> wdayFri      -1.133e-01  6.994e+00  -0.016 0.987077    
#> wdaySat      -9.235e+01  6.938e+00 -13.311  < 2e-16 ***
#> monthFeb     -1.440e+01  9.467e+00  -1.521 0.128280    
#> monthMar     -2.155e+01  9.408e+00  -2.290 0.022012 *  
#> monthApr     -3.171e+01  9.802e+00  -3.235 0.001218 ** 
#> monthMay     -1.383e+01  9.502e+00  -1.456 0.145429    
#> monthJun      1.011e+01  9.299e+00   1.088 0.276821    
#> monthJul      4.347e+01  9.695e+00   4.484 7.34e-06 ***
#> monthAug      3.127e+01  9.500e+00   3.291 0.000998 ***
#> monthSep     -9.994e-01  8.839e+00  -0.113 0.909975    
#> monthOct     -1.093e+01  8.799e+00  -1.243 0.214025    
#> monthNov     -1.016e+01  8.892e+00  -1.143 0.253027    
#> monthDec     -5.284e-01  8.760e+00  -0.060 0.951903    
#> linear_trend -2.579e-04  1.599e-04  -1.613 0.106711    
#> lag_1         1.222e+00  4.888e-03 250.052  < 2e-16 ***
#> lag_2        -2.851e-01  6.134e-03 -46.479  < 2e-16 ***
#> lag_4         3.785e-02  6.299e-03   6.009 1.88e-09 ***
#> lag_5        -1.810e-02  7.914e-03  -2.287 0.022192 *  
#> lag_6        -4.364e-02  7.955e-03  -5.486 4.15e-08 ***
#> lag_7        -1.887e-02  7.957e-03  -2.372 0.017716 *  
#> lag_8        -2.914e-02  7.954e-03  -3.664 0.000249 ***
#> lag_9         1.633e-02  7.960e-03   2.052 0.040217 *  
#> lag_10        6.130e-02  7.950e-03   7.711 1.28e-14 ***
#> lag_11       -2.107e-02  7.958e-03  -2.648 0.008103 ** 
#> lag_12       -3.361e-02  7.953e-03  -4.226 2.38e-05 ***
#> lag_13        4.297e-02  7.953e-03   5.403 6.58e-08 ***
#> lag_14        1.620e-02  7.958e-03   2.036 0.041765 *  
#> lag_15       -6.709e-02  7.949e-03  -8.440  < 2e-16 ***
#> lag_16       -1.677e-02  7.959e-03  -2.107 0.035107 *  
#> lag_17        3.441e-02  7.954e-03   4.326 1.52e-05 ***
#> lag_18        2.064e-02  7.957e-03   2.594 0.009483 ** 
#> lag_19        3.810e-02  7.956e-03   4.790 1.68e-06 ***
#> lag_20        1.857e-02  7.915e-03   2.346 0.018974 *  
#> lag_21       -3.462e-02  6.300e-03  -5.495 3.92e-08 ***
#> lag_23        2.180e-01  6.133e-03  35.551  < 2e-16 ***
#> lag_24       -1.626e-01  5.040e-03 -32.264  < 2e-16 ***
#> lag_48       -1.970e-02  2.055e-03  -9.588  < 2e-16 ***
#> lag_72        1.029e-02  1.553e-03   6.624 3.55e-11 ***
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 
#> Residual standard error: 354.9 on 39337 degrees of freedom
#> Multiple R-squared:  0.9874, Adjusted R-squared:  0.9873 
#> F-statistic: 4.731e+04 on 65 and 39337 DF,  p-value: < 2.2e-16